﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Score : MonoBehaviour
{
    // 表示分数的GUIText
    public Text scoreGUIText;

    // 表示最高分的GUIText
    public Text highScoreGUIText;

    // 分数
    private int score;

    // 最高分
    private int highScore;

    // PlayerPrefs里保存最高分的Key
    // PlayerPrefs是Unity用来做游戏存档的一个类 用 key value键值对进行保存的
    private string highScoreKey = "highScore";

    void Start ()
    {
        Initialize ();
    }

    void Update ()
    {
        // 分数如果比当前最高分高的话
        if (highScore < score) {
            highScore = score;
        }

        // 分数，最高分显示
        scoreGUIText.text = score.ToString ();
        highScoreGUIText.text = "HighScore : " + highScore.ToString ();
    }

    // 回归游戏开始状态
    private void Initialize ()
    {
        // 分数归零
        score = 0;

        // 获取最高分。如果没被保存的话给初始化个0。

        // 只能保存String int float 如果想保存的数据类型复杂 可以考虑XML JSON等格式字符串存入String
        // 有一种扩展 可以上网搜一下 PlayerPrefsX 可以存储数组 List Map之类的高等形
        highScore = PlayerPrefs.GetInt (highScoreKey, 0);
        
    }

    // 加分
    public void AddPoint (int point)
    {
        score = score + point;
    }

    // 保存最高分
    public void Save ()
    {
        // 登记分数
        PlayerPrefs.SetInt (highScoreKey, highScore);
        PlayerPrefs.Save ();

        // 分数归零 游戏重新开始
        Initialize ();
    }
}